import { defineConfig, loadEnv } from "vite";
import vue from "@vitejs/plugin-vue";
import path from "path";

// https://vitejs.dev/config/
export default defineConfig(({ command, mode }) => {
  // 获取环境变量
  const env = loadEnv(mode, process.cwd());
  return {
    //项目根目录（index.html 文件所在的位置）。可以是一个绝对路径，或者一个相对于该配置文件本身的相对路径。
    root: "",
    /**
     * 开发或生产环境服务的公共基础路径。合法的值包括以下几种：
     *  绝对 URL 路径名，例如 /foo/
     * 完整的 URL，例如 https://foo.com/
     * 空字符串或 ./（用于开发环境）
     */
    base: "./",
    //在配置中指明将会把 serve 和 build 时的模式 都 覆盖掉。也可以通过命令行 --mode 选项来重写。
    mode: "development",
    //需要用到的插件数组。Falsy 虚值的插件将被忽略，插件数组将被扁平化（flatten）。查看 插件 API 获取 Vite 插件的更多细节。
    plugins: [vue()],
    // 解析配置 https://vitejs.cn/vite3-cn/config/shared-options.html#resolve-alias
    resolve: {
      alias: {
        "@": path.resolve(__dirname, "./src"), //import时直接将 @ 当作src目录进行解析
      },
    },
    // 开发模式服务器配置 https://vitejs.cn/vite3-cn/config/server-options.html
    server: {
      hmr: true, // 热更新 关闭 避免每次修改浏览器刷新
      strictPort: true, // * 固定端口(如果端口被占用则中止)
      host: "0.0.0.0", // 设置host 可以在局域网内访问
      port: 18988, // 服务启动端口
    },
  };
});
